<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
   <title>Overview</title>
</head>
<body>

<h2>Overview</h2>
Knowledge Discovery Metamodel (KDM) is publicly available specification 
from the Object Management Group (OMG). 
KDM is a common intermediate representation for existing 
software systems and their operating environments. 
KDM is designed as the OMG's foundation for software modernization and software assurance. KDM uses Meta-Object Facility to define an XMI interchange format between tools that work with existing software and an abstract interface (API) 
for the next-generation assurance and modernization tools.

<p>
The goal of KDM is to ensure interoperability between tools for maintenance, evolution, assessment and modernization. KDM is defined as a metamodel that can be also viewed as an ontology for describing the key aspects of knowledge related to the various facets of enterprise software. KDM support means investment into the KDM ecosystem - a growing open-standard based cohesive community of tool vendors, service providers, and commercial components.
<p>
KDM represents entire enterprise software systems, not just code. KDM is a wide-spectrum entity-relationship representation for describing existing software. KDM represents structual and behavior elements of existing software systems. The key concept of KDM is a container: an entity that owns other entities. This allows KDM to represent existing systems at various degrees of granularity.
<p>
KDM defines precise semantic foundation for representing behavior, the so-called micro-KDM. It provides a high-fidelity intermediate representation which can be used, for example, for performing static analysis of existing software systems. micro-KDM is similar in purpose to a Virtual machine for KDM, although KDM is not an executable model, or a constraint model, but a representation of existing artifacts for analysis purposes.
<p>
KDM facilitates incremental analysis of existing software systems, where the initial KDM representation is analyzed and more pieces of knowledge are extracted and made explicit as KDM to KDM transformation performed entirely within the KDM technology space. The steps of the knowledge extraction process can be performed by tools, and may involve the analyst.
<p>
KDM is the uniform language- and platform- independent representation. Its extensibility mechanism allows addition of domain-, application- and implementation-specific knowledge.
</body>
</html>
